package algo3.g203.vista.naves;

import fiuba.algo3.titiritero.dibujables.SuperficiePanel;
import fiuba.algo3.titiritero.modelo.ObjetoDibujable;
import fiuba.algo3.titiritero.modelo.ObjetoPosicionable;
import fiuba.algo3.titiritero.modelo.SuperficieDeDibujo;

import algo3.g203.modelo.naves.Nave;
import algo3.g203.modelo.naves.secciones.SeccionTemplate;

import javax.imageio.ImageIO;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.List;

public class VistaNave implements ObjetoDibujable {

    private BufferedImage imagenSeccionActiva;
    private BufferedImage imagenSeccionDestruida;
    ObjetoPosicionable posicionable;

    public VistaNave(String urlImagenSeccionActiva, String urlImagenSeccionDestruida, ObjetoPosicionable posicionable) throws IOException {
    	
    	this.posicionable = posicionable;
		this.imagenSeccionActiva 	= ImageIO.read(new File(urlImagenSeccionActiva));
		this.imagenSeccionDestruida = ImageIO.read(new File(urlImagenSeccionDestruida));
    }
    
	@Override
	public void dibujar(SuperficieDeDibujo superficieDeDibujo) {
		Graphics grafico = ((SuperficiePanel)superficieDeDibujo).getBuffer();
		
		Nave nave = (Nave) posicionable;
		List<SeccionTemplate> listaSecciones = nave.getPartes();
		BufferedImage imagenADibujar;
		
		for (SeccionTemplate s: listaSecciones) {
			
			if (s.estaDestruida())
				imagenADibujar = imagenSeccionDestruida;
			else
				imagenADibujar = imagenSeccionActiva;
			
			grafico.drawImage(imagenADibujar, s.getX(), s.getY(),null);
		}
	}
	
	public ObjetoPosicionable getPosicionable() {
		return posicionable;
	}
	
}